#include <iostream>

using std::cout;
using std::endl;

//抽象类的第二种形式：将构造函数使用protected进行修饰
//那么该类就是抽象类，该类不能创建对象，但是该类的构造
//函数是可以被派生类类体使用的
class Base
{
/* public: */
/* private: */
protected:
    Base()
    {
        cout << "Base()" << endl;
    }
};

class Derived
: public Base
{
public:
    Derived()
    : Base()
    {

    }
};

void test()
{
    /* Base base;//error */

}

int main(int argc, char **argv)
{
    test();
    return 0;
}

